Methods and apparatus to discover network capabilities available via wireless networks

ABSTRACT

An example method for network selection involves discovering network capabilities by performing an Access Network Query Protocol (ANQP) query at a wireless terminal, and receiving a subsequent ANQP response from an access point of a wireless local area network. The network capabilities are indicated in the subsequent ANQP response. The example method also involves comparing the network capabilities with configured capabilities, finding a match between at least a portion of the network capabilities and at least a portion of the configured capabilities, and joining the wireless terminal with the access point based on the at least the portion of the network capabilities matching the at least the portion of the configured capabilities.

RELATED APPLICATIONS

This patent arises from a continuation of U.S. patent application Ser.No. 12/893,835, filed on Sep. 29, 2010, which is hereby incorporatedherein by reference in its entirety.

FIELD OF THE DISCLOSURE

The present disclosure relates generally to network communications and,more particularly, to methods and apparatus to discover networkcapabilities available via wireless networks.

BACKGROUND

Wireless network deployments, such as wireless local area networks(WLANs), allow wireless terminals to access network and Internetservices when within proximity of wireless communication signals ofthose wireless networks. Different WLANs provide different networkcapabilities for wireless clients. Such network capabilities may includeaccess to particular subscription service provider (SSP) networks,roaming agreements to allow connections from wireless clients associatedwith different SSPs, authentication capabilities to enable securecommunications, support for emergency services, support for particulartypes of multi-media access (e.g., audio and/or video streaming,downloading, etc.), and/or support for other types of network services.If a wireless client joins a WLAN that does not provide a particularnetwork capability, the wireless client cannot use such capability whileassociated with that WLAN.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts an example communication network in which a wirelessterminal may communicate with a plurality of wireless local areanetworks.

FIG. 2 depicts a portion of the example communication network of FIG. 1in which the wireless terminal may discover example network capabilitiesthat may be accessed via one of the wireless local area networks of FIG.1.

FIG. 3 depicts example data structures cached and/or stored in awireless terminal to facilitate selecting wireless networks to joinbased on received network capabilities of those networks and networkcapabilities profiles associated with the wireless terminal.

FIG. 4 depicts another example network capabilities profile datastructure having network capabilities profiles defining different setsof network capabilities.

FIG. 5 depicts an example wireless terminal that may be used toimplement the example methods and apparatus described herein.

FIG. 6 depicts an example wireless access point that may be used toimplement the example methods and apparatus described herein.

FIGS. 7A-7C depict a flow diagram representative of an example processthat may be implemented by a wireless terminal to discover networkcapabilities available via one or more wireless local area networks.

FIG. 8 depicts a flow diagram representative of another example processthat may be implemented by the wireless terminal of FIGS. 1-5 todiscover network capabilities available via one or more WLANs.

FIG. 9 depicts a flow diagram representative of an example process thatmay be implemented by a wireless local area network access point to sendnetwork capabilities information to a wireless terminal.

DETAILED DESCRIPTION

Although the following discloses example methods and apparatusincluding, among other components, software executed on hardware, itshould be noted that such methods and apparatus are merely illustrativeand should not be considered as limiting. For example, it iscontemplated that any or all of these hardware and software componentscould be embodied exclusively in hardware, exclusively in software,exclusively in firmware, or in any combination of hardware, software,and/or firmware. Accordingly, while the following describes examplemethods and apparatus, persons having ordinary skill in the art willreadily appreciate that the examples provided are not the only way toimplement such methods and apparatus.

The example methods and apparatus described herein can be used bywireless terminals to discover network capabilities that are availablevia wireless networks. Network capabilities are also referred to hereinas network services supported by wireless networks. The example methodsand apparatus described herein can be used in connection with mobilecommunication devices, mobile computing devices, or any other devicecapable of communicating wirelessly with a wireless network. Suchdevices, also referred to as terminals, wireless terminals, or userequipment (UE), may include mobile smart phones (e.g., a BlackBerry®smart phone), wireless personal digital assistants (PDA),laptop/notebook/netbook computers with wireless adapters, etc. Theexample methods and apparatus are described herein in connection withthe wireless local area network (WLAN) communication standard known asIEEE® (Institute for Electrical and Electronics Engineers) 802.11,which, among other things, defines interworking with external networks.However, the example methods and apparatus may additionally oralternatively be implemented in connection with other wirelesscommunication standards including other WLAN standards (e.g., any IEEE®802.1x standard), personal area network (PAN) standards, wide areanetwork (WAN) standards, or cellular communication standards.

Although the example methods and apparatus described herein may beimplemented in any environment providing WLAN access for networkconnectivity, the example methods and apparatus can be advantageouslyimplemented in WLAN access locations or environments in which it isexpected that one or more users carrying respective wireless terminalswill frequently connect to (or join) and disconnect from a WLAN as theyenter and exit the WLAN access locations or environments. WLAN locationsor environments are sometimes known as “hotspots” in reference to alocation or environment that is within communication reach of WLANsignals. Such example WLAN locations or environments include coffeeshops, retail stores, educational facilities, office environments,airports, public transportation stations and vehicles, hotels, etc. SuchWLANs are often implemented as access networks that provide access tothe Internet and may be associated with, or support access to, externalnetworks (or WLAN-supported networks) owned and/or operated bysubscription-based service providers. For example, an external networkcan be owned and/or operated by an Internet-access service provider or atelecommunications carrier/service provider that providessubscription-based Internet access for a fee (e.g., a monthly fee). Inthis manner, a subscriber/user subscribed to such a service can usewireless network access and/or Internet-access services based on such asubscription when the subscriber is in communication proximity of theWLAN with an appropriate wireless terminal. In some instances, differentWLANs may provide access to different types of network capabilities. Forexample, some WLANs may provide access to particular subscriptionservice provider (SSP) networks, while others do not. In addition, someWLANs may support roaming agreements to allow connections from wirelessterminals associated with different SSPs. Also, some WLANs may provideconnection authentication capabilities to enable secure communications,may support particular emergency services, and/or may support particulartypes of multi-media access (e.g., audio and/or video streaming). WLANsmay additionally or alternatively support other types of network accesscapabilities.

Known techniques for discovering network capabilities or networkservices available via WLANs can be time consuming and can adverselyaffect power consumption (and, thus, battery charge) of mobile devices.In addition, the user experience of known techniques or standards forassociating a wireless terminal with a WLAN hotspot can be frustratingwhen network capabilities required by a wireless terminal and/or desiredby a user of the wireless terminal are lacking via the WLAN hotspot. Forexample, known techniques for associating a wireless terminal with aWLAN involve the wireless terminal passively or actively scanning todiscover one or more WLANs. The wireless terminal then selects a WLAN tojoin (e.g., based on advertised WLAN network properties such as aservice set identifier (SSID), an encryption mode (e.g., wirelessencryption protocol (WEP), Wi-Fi protected access (WPA), etc.), receivedsignal strength indication (RSSI) and joins the selected WLAN. Afterjoining the WLAN, known techniques may then be used to discover networkcapabilities available via the WLAN. However, if network capabilitiesrequired by the wireless terminal and/or desired by a user of thewireless terminal are not available, the WLAN association would beundesirable, yet the processing power and time for associating with theWLAN would already have been expended.

Unlike known techniques for discovering network capabilities, theexample methods and apparatus described herein may be used to performqueries during a network discovery process to discover networkcapabilities available via WLANs. In this manner, a wireless terminalmay obtain information on network capabilities made available by WLANsto determine, based on the network capabilities information, whether tocontinue with a connection process to join the wireless terminal with aWLAN. In accordance with the example techniques described herein,wireless terminals may request network capabilities information fromWLANs using an Access Network Query Protocol (ANQP). The ANQP supportsinformation retrieval from an Advertisement Server that supports aGeneric Advertisement Service (GAS). ANQP and GAS are defined in IEEE®802.11u. Additionally or alternatively, other query protocols (e.g.,Registered Location Query Protocol (RLQP) as defined in IEEE® 802.11af,Hotspot Query Protocol (HSQP), and Online Signup Advertisement Protocol(OSAP) as defined in the Wi-Fi Alliance) may also be used in a similarmanner to ANQP. An example ANQP exchange involves a requesting station(STA) (e.g., a wireless terminal) querying another STA (e.g., a WLANaccess point (AP)) for information such as network capabilitiesinformation. The queried or receiving STA can respond to the receivedquery with the requested information. The queried or receiving STA cangenerate the response information with or without proxying the query toa server in an external network (e.g., an SSP network). For example, anexternal network connected to a queried WLAN may have particular networkcapabilities accessible via the WLAN and of which a querying wirelessterminal should be made aware. Although example methods and apparatusare described herein in connection with ANQP and GAS, other queryprotocols and information exchange services may alternatively oradditionally be used.

To facilitate selections of WLANs as candidates for association, awireless terminal may locally store one or more network capabilitiesprofiles, each of which may define a different set of networkcapabilities. In this manner, when the wireless terminal receivesinformation indicative of network capabilities that are available via aWLAN, the wireless terminal may compare the network capabilities to itsstored network capabilities profiles. Network capabilities profilesspecifying network capabilities or minimum network capabilitiesrequirements that match the network capabilities of the WLAN can beidentified by the wireless terminal as indicating that the WLAN is asuitable candidate to join. If the wireless terminal finds that the WLANis suitable to join, the wireless terminal may proceed with joining theWLAN.

A wireless terminal may join a WLAN using a manual mode (e.g., inresponse to a user selection of one of a plurality of available WLANs)or using an automatic mode. In the illustrated examples describedherein, an automatic mode involves a wireless terminal selecting a WLANcandidate based on a filtering scheme. For example, network capabilitiesprofiles stored in a wireless terminal may be assigned ranking levels(e.g., by a user, the wireless terminal, an SSP, etc.) such that thewireless terminal can select a highest ranking one of the networkcapabilities profiles that meets at least a minimum quantity of networkcapability matches. In some example implementations, the automatic modeof joining a WLAN may be advantageously used in connection with wirelessterminals that do not provide displays or user-input interfaces to allowusers to enter WLAN selections. For example, an 802.11-based, wirelessEthernet portable music player may provide a user interface to enableselecting streaming music stations, but the user interface may not besufficiently sophisticated to enable other types of user-enteredinformation (e.g., WLAN selection). However, the methods and apparatusdescribed herein can enable such a portable music player to join a WLANhotspot when the portable music player has stored therein a networkcapabilities profile having a minimum quantity of matches with networkcapabilities available via the WLAN hotspot.

In some example implementations, the network capability discoverytechniques described herein may be used for network discovery instead ofSSID-based network discovery. For example, rather than using SSIDs asthe primary mode for network discovery, a wireless terminal may usenetwork capabilities information received from APs and its stored WLANprofiles to determine when it is in the vicinity of WLANs suitable forassociation.

Turning now to FIG. 1, an example communication network 100 in which theexample methods and apparatus described herein may be implemented isshown. As shown in FIG. 1, the example communication network 100includes a plurality of WLAN access locations 102 a-c having respectiveaccess points 104 a-c that provide access to respective access networks106 a-c. In the illustrated example, the access network A 106 a providesaccess to an external network A 108 a and the access network B 106 bprovides access to an external network B 108 b. In the illustratedexample, each of the external networks A 108 a and B 108 b may be asubscription service provider (SSP) network owned and/or operated bydata subscription service providers, Internet subscription serviceproviders, media (e.g., audio/video) subscription service providers,wireless communications subscription service providers, or anycombination thereof. In the illustrated example, the external networks A108 a and B 108 b are connected to the Internet 112 and may, forexample, provide subscription-based Internet access to wirelessterminals. In some example implementations, roaming agreements betweendifferent SSPs may enable the external networks A 108 a and B 108 b tosupport roaming connections for wireless terminals associated with otherSSPs.

Unlike the access networks A 106 a and B 106 b that do not connectdirectly to the Internet 112, the access network C 110 is connecteddirectly to the Internet. Thus, the access network C 106 c may be apublic network, while the access networks A 106 a and B 106 b may beprivate networks.

Although not shown, each of the APs 104 a-c and a wireless terminal 114,that communicates with the APs 104 a-c, is provided with a station(STA), which is the interface or component, such as a network adapter ornetwork interface card (NIC), that connects to a wireless medium.

Each of the access networks 106 a-c and the external networks 108 a-bmay be associated with and/or provide access to different networkcapabilities. The network capabilities may include roamingrelationships, network services, multi-media access services, supportedauthentication and/or security methods, emergency services, etc. Thenetwork capabilities may be selected by respective owners or operatorsof the networks 106 a-c, 108 a, and 108 b based on different factorssuch as, for example, subscription usage plans, desired security levels,business objectives, roaming agreements, supported emergency services,supported multi-media access, available Internet access, etc. Forinstance, if an SSP associated with the external network A 108 a onlyallows access by subscribers of its services, the external network A 108a may advertise that it does not support roaming connections.

The example methods and apparatus described herein may also enable thewireless terminal 114 to join different APs (e.g., the APs 104 a-c)based on different network capabilities profiles stored in the wirelessterminal 114. That is, when the wireless terminal 114 is moved to adifferent one of the WLAN access locations 102 a-c, the wirelessterminal 114 can dynamically discover network capabilities available atthe WLAN access locations 102 a-c and join any suitable one of the APs104 a-c even when the wireless terminal 114 has not previouslyencountered the APs 104 a-c or the network capabilities available viathe APs 104 a-c have changed since a previous connection between thewireless terminal 114 and the APs 104 a-c.

As shown generally in connection with the WLAN access location 102 a,the wireless terminal 114 can send a network capabilities request(NETCAP REQUEST) message 116 to the AP 104 a and receive a networkcapabilities response (NETCAP RESPONSE) message 118 including networkinformation 120 indicating one or more network capabilities (of theaccess network A 106 a and/or the external network A 108 a) availablevia the access point 104 a. The wireless terminal 114 and the AP 104 amay exchange the NETCAP REQUEST 116 and NETCAP RESPONSE 118 using theANQP protocol after the wireless terminal 114 receives an SSID of the AP104 a or without the wireless terminal 114 needing to have received theSSID. In addition, the NETCAP REQUEST 116 and the NETCAP RESPONSE 118may be exchanged at a media access control (MAC) sub-layer of thewell-known Open Systems Interconnection (OSI) Reference Model withoutneeding to use operations at or above an internet protocol (IP) layer(i.e., a network layer) nor needing to otherwise provide access to theIP layer while discovering network capabilities available via the AP 104a.

Discovering network capabilities using messages exchanged at or abovethe network layer requires relatively more processing power of awireless terminal than implementing processes at the MAC sub-layer.Mobile wireless terminals (e.g., the wireless terminal 114 of FIG. 1)such as mobile smart phones, PDA's, etc. often have relatively limitedprocessor cycles and less available electrical power than fixed-locationcomputing devices powered using alternating current (AC) electricitysources. The example methods and apparatus described herein can beadvantageously used to configure, design, or otherwise engineer mobilewireless terminals to operate more efficiently (i.e., do more with fewerprocessor cycles) and, thus, reduce battery power use. That is, theexample methods and apparatus described herein can be advantageouslyused to promote mobile wireless terminal designs that consume relativelyless power and operate relatively more efficiently. For example,low-level resource operations at the MAC sub-layer require relativelyfewer system resources than user-interface-intensive and operatingsystem (OS)-intensive operations (e.g., web-browser operations) at anapplication layer of the OSI Reference Model.

Another example advantage of discovering network capabilities availablevia APs using the MAC sub-layer is that a network capability discoveryprocess can, without user involvement or with minimal user involvement,determine whether an AP is a suitable candidate for association based onminimal requirements of network capabilities profiles stored in thewireless terminal 114. For example, if the AP 104 a advertises that itdoes not support roaming and the wireless terminal 114 would need tojoin the AP 104 under a roaming policy, the wireless terminal 114 can beconfigured to ignore the presence of the AP 104 a because the wirelessterminal 114 would be denied network access via the AP 104 a. In someexample implementations, the wireless terminal 114 can be configured tonot inform its user of the presence of the AP 104 a during a WLANdiscovery process when it would not be possible for the wirelessterminal 114 to connect to the AP 104 a without minimum networkcapabilities required by the network capabilities profiles of thewireless terminal 114. Such example implementations substantially reduceor eliminate user frustration because the user would not need to engagein any attempts to join a particular AP when the AP does not meet theminimum network capability requirements of the wireless terminal 114.

Although an SSID is used in connection with the some exampleimplementations described herein, an AP may alternatively be configuredto broadcast a Homogeneous Extended Service Set Identifier (HESSID). AnHESSID includes an SSID associated with a particular AP and a networkidentification corresponding to a supported external network (e.g., aSSP network). For instance, if the AP 104 a of FIG. 1 were configured tobroadcast an HESSID, it would include the SSID of the AP 104 a and thenetwork identification corresponding to the external network A 108 a.

Other example advantages of the example techniques described hereinresult from the wireless terminal 114 discovering network capabilitieseach time it encounters an AP. In this manner, the wireless terminal 114need not be pre-programmed to know network capabilities available viadifferent APs. In addition, network capabilities of different networks(e.g., the access networks 106 a-c, 108 a, and 108 b) may be changed atany time because wireless terminals can discover the changed networkcapabilities anew each time the wireless terminals discover (orre-discover) the networks.

FIG. 2 depicts a portion of the example communication network 100 ofFIG. 1 in which the wireless terminal 104 may discover example networkcapabilities that may be accessed via the AP 104 a. Although not shown,the wireless terminal 104 may discover network capabilities availablevia the APs 104 b and 104 c or any other AP using similar or identicaltechniques as described in connection with FIG. 2. In the illustratedexample of FIG. 2, the external network A 108 a includes an externalnetwork capabilities data store 202 to store network capabilities 206a-f of the external network A 108 a. In the illustrated example, thenetwork capabilities 206 a-f include one or more roaming policies 206 a,network service(s) capabilities 206 b, emergency services support 206 c,subscription service provider (SSP) identifier(s) 206 d, multimediaaccess types 206 e, and authentication methods 206 f.

In the illustrated example, the one or more roaming policies 206 a maybe based on agreements between the SSP(s) of the external network A 108a and one or more other SSP(s) to allow wireless terminals to join theaccess network 106 a under a roaming mode and, in turn, the externalnetwork A 108 a. The network service(s) 206 b may identify one or morenetwork services (e.g., Internet connectivity, media streaming, secureprotocols, no payment required, etc.) supported for communication withor via the external network A 108 a. The emergency service(s) 206 c mayindicate the types of emergency services that are supported or providedby the external network A 108 a. The SSP ID(s) 206 d identify one ormore SSPs that support or provide service via by the external network A108 a. A wireless terminal associated with a service subscription of anSSP that supports or provides service via the external network A 108 amay join the access network A 106 a to access the external network A 108a without requiring a roaming agreement. The multimedia access types 206e indicate the types of multimedia (e.g., video, audio, IP television(IPTV), etc.) that may be accessed via the external network A 108 a. Theauthentication methods 206 f may include identifiers of one or moreauthentication methods supported by the external network A 108 a. Anexample authentication method is an Extensible Authentication Protocol(EAP) method. Known EAP methods include EAP-WISP (wireless internetservice provider), EAP-MD5, EAP-OTP, EAP-GTC, EAP-TLS, EAP-IKEv2,EAP-SIM, EAP-AKA, EAP-FAST, EAP-TTLS, and PEAP. Each EAP method can beidentified using a corresponding integer-format value assigned by anindustry-standard resource coordination body such as the InternetAssigned Numbers Authority (IANA) (http://www.iana.org). Other EAPmethods can also include vendor-specific methods.

In the illustrated example, the access network A 106 a is provided withan access network capabilities data store 208 to store networkcapabilities of the access network A 106 a. Although not shown, theaccess capabilities stored in the access network capabilities data store208 may be of the same type as the network capabilities 206 a-f storedin the external network capabilities data store 202 or may be of anyother suitable types of network capabilities.

In the illustrated example, the network capabilities 206 a-f and networkcapabilities stored in the access network capabilities data store 208may be organized using an extensible markup language (XML) structure. Inthis manner, the AP 104 a and the wireless terminal 114 can exchangeregistration requirements and registration information using the XMLformat. Alternatively, the network capabilities 206 a-f and networkcapabilities stored in the access network capabilities data store 208can be organized as sets of enumerated types, and the AP 104 a and thewireless terminal 114 can exchange registration requirements andregistration information using a type-length-value (TLV) structureformat. For example, the AP 104 a can encapsulate ones of the networkcapabilities in TLV type structures for communication to the wirelessterminal 114 (e.g., via the NETCAP RESPONSE 118).

In the illustrated example of FIG. 2, the wireless terminal 114 storesnetwork capabilities profiles 210, each of which may define a differentset of network capabilities. The wireless terminal 114 may use thenetwork capabilities profiles 210 to identify suitable WLAN candidatesthat the wireless terminal 114 may join. In some exampleimplementations, each of the network capabilities profiles 210 may beassigned a respective ranking so that the wireless terminal 114 mayperform a ranking process when a WLAN (e.g., the access network A 106 a)has network capabilities that meet a minimum capabilities requirement ofmore than one of the network capabilities profiles 210. Exampleimplementations of the network capabilities profiles 210 are describedbelow in connection with FIGS. 3 and 4.

In the illustrated example of FIG. 2, the wireless terminal 114 uses thenetwork capabilities profiles 210 during a network discovery process todetermine whether any APs within a wireless communication vicinity ofthe wireless terminal 114 are suitable candidates for association. Asshown in FIG. 2, during a network discovery process, the wirelessterminal 114 may receive an SSID 212 and an encryption mode status 214from the AP 104 a. In the illustrated example, the encryption modestatus 214 indicates whether an encryption mode (e.g., wirelessencryption protocol (WEP), Wi-Fi protected access (WPA), etc.) isenabled on the AP 104 a. Although not shown, the wireless terminal 114may also simultaneously receive other SSIDs and encryption mode statusesfrom other nearby APs. In some example implementations, the AP 104 a mayalso communicate a GAS support indicator 216 (typically implemented asan Interworking element in the beacon or probe response of an IEEE®802.11 WLAN) to the wireless terminal 114, as shown in FIG. 2. The GASsupport indicator 216 indicates that the access network A 106 a supportsGAS. The wireless terminal 114 may use this information to communicatewith the AP 104 a using protocols transported over GAS (e.g., ANQPmessages). If a WLAN does not support GAS, it will not transmit the GASsupport indicator 216.

In some example implementations, after receiving the SSID 212 and theencryption mode status 214 (and the GAS support indicator 216, ifapplicable), the wireless terminal 114 sends the NETCAP REQUEST 116 tothe AP 104 a to request network capabilities that are available via theaccess network A 106 a. In the illustrated example, the networkcapabilities may be provided by the access network A 106 a and/or theexternal network A 108 a. If the external network A 108 a provides somenetwork capabilities, the access network A 106 a may relay, forward, orotherwise send an external network capabilities request (EXT-NETCAPREQUEST) 218 to the external network A 108 a in response to receivingthe NETCAP REQUEST 116 from the wireless terminal 114. In response tothe EXT-NETCAP REQUEST 218, the external network A 108 a sends itsnetwork capabilities (e.g., one or more of the network capabilities 206a-f) to the access network A 106 a via an EXT-NETCAP RESPONSE 220.

The access network A 106 a forms the NETCAP RESPONSE 118 to include thenetwork capabilities of the external network A 108 a and any networkcapabilities provided by the access network A 106 a. The AP 104 a thensends the NETCAP RESPONSE 118 to the wireless terminal 114 to inform thewireless terminal 114 of the network capabilities that are available viathe access network A 106 a. The wireless terminal 114 may then comparethe received network capabilities with network capabilities indicated ineach of its network capabilities profiles 210 to determine whetherminimum network capability requirements are met for any of the networkcapabilities profiles 210 to indicate that the access network A 106 a isa suitable candidate for association.

Turning now to FIG. 3, the wireless terminal 114 caches and/or stores anexample network capabilities profile data structure 302 having networkcapabilities profiles (e.g., the network capabilities profiles 210 ofFIG. 2) specifying different sets of network capabilities. In theillustrated example, the wireless terminal 114 also caches discoverednetwork capabilities 304 received from one or more wireless networks(e.g., wireless networks associated with the APs 104 a-c) during awireless network scan. In example implementations, the wireless terminal114 uses the network capabilities profile data structure 302 and thediscovered network capabilities 304 to select wireless networks to joinbased on network capabilities of discovered wireless networks (e.g., thediscovered network capabilities 304) and network capabilities (e.g., oneor more network capabilities specified in the network capabilitiesprofile data structure 302) that are desired for use with the wirelessterminal 114. In some example implementations, the wireless terminal 114may also use a cached or stored SSID priority list 306 indicating apriority order of one or more SSIDs to select a wireless network to joinwhen two or more wireless networks advertise network capabilitiesequally desired for use with the wireless terminal 114 (e.g., based onthe network capabilities specified in the network capabilities profiledata structure 302).

In the illustrated example of FIG. 3, each network capabilities profilein the network capabilities profile data structure 302 is assigned aunique profile ID 308 and includes rankings 310, minimum capabilities312, and additional capabilities 314. Turning to the discovered networkcapabilities 304, during wireless network scans performed by thewireless terminal 114 to discover available WLANs (e.g., the accessnetworks 106 a-c of FIG. 1) in its vicinity, the wireless terminal 114caches discovered SSIDs 316. For each discovered SSID 316, the wirelessterminal 114 sends an ANQP query to each discovered WLAN requesting thenetwork capabilities of those networks. The wireless terminal 114 thencaches the received network capabilities 318 as shown in FIG. 3. In theillustrated example of FIG. 3, the cached network capabilities 318 areshown as <X>, <Y>, and <M> for each respective WLAN. Each notation <X>,<Y>, and <M> represents a listing of one or more network capabilities orservices available via the respective WLAN.

Referring back to the network capabilities profile data structure 302,the minimum capabilities 312 are denoted as <X>, <Y>, <M>, <N>, and <O>,each of which indicates one or more network capabilities (for eachprofile) that must be available via a WLAN (e.g., the access network 106a of FIGS. 1 and 2) to consider that WLAN a suitable candidate for thewireless terminal 114 to join. For example, if discovered networkcapabilities (e.g., network capabilities <Y> cached in the discoverednetwork capabilities 304) available via the access network A 106 a donot meet the minimum network capabilities of profile ID 0001, then theaccess network A 106 a would not be regarded as a suitable candidatebased on the profile ID 0001. However, if the same discovered networkcapabilities (e.g., network capabilities <Y>) of the access network A106 a do meet the minimum network capabilities of profile ID 0002, thenthe access network A 106 a would be regarded as a suitable candidatebased on the profile ID 0002. Thus, network capabilities of a WLAN needto at least meet the minimum network capabilities of one networkcapabilities profile for that WLAN to be regarded as a suitablecandidate for joining by the wireless terminal 114.

In the illustrated example of FIG. 3, the additional capabilities 314specifies network capabilities for each network capabilities profilethat are not necessarily required for a WLAN to be considered a suitableassociation candidate. However, the network capabilities specified inthe additional capabilities 314 could be additional desired networkcapabilities. In some example implementations, the additionalcapabilities 314 may be used to select a WLAN that the wireless terminal114 should join when multiple WLANs have been identified as suitableassociation candidates. For example, the wireless terminal 114 maydiscover the access network A 106 a and the access network B 106 b ofFIG. 1 during the same network scan, and the access network A 106 a maymeet the minimum network capabilities requirements of profile ID 0001,while the access network B 106 b may meet the minimum networkcapabilities requirements of profile ID 0002. In such an example, thewireless terminal 114 or a user of the wireless terminal 114 may selectto connect to the access network A 106 a if the network capabilitiesaccessible via the access network A 106 a match more of the networkcapabilities specified in the additional capabilities 314 for theprofile ID 0001 than the quantity or percentage of matches between thenetwork capabilities accessible via the access network B 106 b and theadditional capabilities 314 for the profile ID 0002.

In some example implementations, WLANs may be selected for associationbased on rankings of network capabilities profiles. In the illustratedexample, the network capabilities profiles are assigned ranking values310 to indicate their order of preference for use when selecting a WLANfrom more than one suitable association candidate. The ranking values310 may be specified by the wireless terminal 114 or by a SSP based onrules or criteria related to preferable wireless connections.Alternatively, the ranking values 310 may be specified by a user of thewireless terminal 114 based on wireless connection preferences of theuser. During a network discovery process, when the wireless terminal 114finds that more than one WLAN (e.g., the access networks A 106 a, B 106b, and C 106 c) is a suitable association candidate, the wirelessterminal 114 may rank each of the WLANs based on the ranking values 310assigned to corresponding ones of the network capabilities profiles thatmatch those WLANs. For example, if network capabilities available viathe access network A 106 a align with the minimum capabilities 312 ofthe profile ID 0003 and the network capabilities of the access network B106 b align with the minimum capabilities 312 of the profile ID 0005,both of the access networks A 106 a and B 106 b are suitable associationcandidates, but the wireless terminal 114 selects the access network A106 a because the network capabilities profile (profile ID 0003)satisfied by the network capabilities of the access network A 106 a hasthe higher capability ranking.

In the illustrated example, the wireless terminal 114 may use prioritiesof SSIDs listed in the SSID priorities table 306 to break a ‘tie’ whenmore than one discovered WLAN achieves the same one of the rankings 310.That is, if two WLANs with different SSIDs meet the minimum capabilities312 of the same network capabilities profile, the wireless terminal 114may select the WLAN having the highest priority SSID according the SSIDpriorities list 306.

Turning now to FIG. 4, another example network capabilities profile datastructure 400 is shown with example minimum network capabilities orservices shown for each network capabilities profile. In addition, FIG.4 shows that network capabilities profiles may be defined independent ofnetwork SSIDs. That is, unlike traditional network discovery techniquesthat rely on the SSID of a network to determine whether to join thatnetwork, the wireless terminal 114 may instead rely on the networkcapabilities of a WLAN exclusive of the SSID of the WLAN to determinewhether the WLAN is a suitable candidate to join.

The network capabilities profile data structure 400 may be cached orstored in the wireless terminal 114. In the illustrated example of FIG.4, the network capabilities profile data structure 400 stores aplurality of network capabilities profiles (e.g., the networkcapabilities profiles 210 of FIG. 2) specifying different sets ofnetwork capabilities. Each network capabilities profile is provided witha profile ID 402 and minimum capabilities 404 specifying the networkcapabilities required to recognize that a WLAN (e.g., any of the accessnetworks 106 a-c of FIG. 1) is available for associating with by thewireless terminal 114. For example, the network capabilities profilehaving profile ID 0001 requires only that a WLAN have a network accessidentifier (NAI) of ‘MYPROVIDER.COM’ to be considered a suitableassociation candidate for the wireless terminal 114. In such an example,‘MYPROVIDER.COM’ may be the NAI of an SSP that provides a subscriptionservice for the wireless terminal 114.

In the illustrated example, each of the network capabilities profiles isassociated with a wildcard (*) as an SSID 406. The SSID wildcard (*)indicates that the SSID of a WLAN can be anything. That is, regardlessof a particular SSID, the wireless terminal 114 can detect a WLAN asbeing available for association if the network capabilities availablevia the WLAN satisfy the network capabilities specified in the minimumcapabilities 404 for any of the network capabilities profiles of thenetwork capabilities profile data structure 400.

In some example implementations, the network capabilities profile datastructure 400 may also be provided with ranking values such as theranking values 310 of FIG. 3 and additional capabilities such as theadditional capabilities 314 of FIG. 3.

Although not shown, the minimum capabilities 404 of FIG. 4 (and/or theminimum capabilities 312 of FIG. 3) may specify credentials forparticular network services. For example, a roaming credential may bespecified in a network capabilities profile indicating that, for thatparticular profile, a roaming network service of a wireless network mustsupport roaming access to roam onto a network of an SSP indicated by theroaming credential. In such example implementations, if a networkcapabilities profile specifies a roaming credential as a minimumcapability, the wireless terminal 114 must confirm that a WLAN supportsroaming access to a SSP specified by the roaming credential of thatprofile. Otherwise, if roaming access corresponding to that roamingcredential is not supported by a particular WLAN, the wireless terminal114 will not consider that WLAN as a suitable candidate for joining.

Referring now to FIG. 5, an illustrated example of the wireless terminal114 of FIGS. 1-4 is shown in block diagram form. In the illustratedexample, the wireless terminal 114 includes a processor 502 that may beused to control the overall operation of the wireless terminal 114. Theprocessor 502 may be implemented using a controller, a general purposeprocessor, a digital signal processor, dedicated hardware, or anycombination thereof.

The wireless terminal 114 also includes a terminal message generator 504and a terminal data parser 506. The terminal message generator 504 maybe used to generate network capability discovery messages such as theNETCAP REQUEST 116 of FIGS. 1 and 2. The terminal data parser 506 may beused to retrieve information from memory (e.g., a RAM 510, a cache,etc.). For example, the terminal data parser 506 can retrieve SSIDs(e.g., the SSID 212 of FIG. 2), encryption mode statuses (e.g., theencryption mode status 214 of FIG. 2), GAS support indicators (e.g., theGAS support indicator 216 of FIG. 2) and network capabilities that arecached in the wireless terminal 114 after receiving them from a WLAN(e.g., the access networks 106 a-c of FIG. 1).

Although the terminal message generator 504 and the terminal data parser506 are shown as separate from and connected to the processor 502 inFIG. 5, in some example implementations, the terminal message generator504 and the terminal data parser 506 may be implemented in the processor502 and/or in a wireless communication subsystem (e.g., a wirelesscommunication subsystem 518). The terminal message generator 504 and theterminal data parser 506 may be implemented using any desiredcombination of hardware, firmware, and/or software. For example, one ormore integrated circuits, discrete semiconductor components, and/orpassive electronic components may be used. Thus, for example, theterminal message generator 504 and the terminal data parser 506, orparts thereof, could be implemented using one or more circuit(s),programmable processor(s), application specific integrated circuit(s)(ASIC(s)), programmable logic device(s) (PLD(s)), field programmablelogic device(s) (FPLD(s)), etc. The terminal message generator 504 andthe terminal data parser 506, or parts thereof, may be implemented usinginstructions, code, and/or other software and/or firmware, etc. storedon a machine accessible medium and executable by, for example, aprocessor (e.g., the example processor 502). When any of the appendedclaims are read to cover a purely software implementation, at least oneof the terminal message generator 504 or the terminal data parser 506 ishereby expressly defined to include a tangible medium such as a solidstate memory, a magnetic memory, a DVD, a CD, etc. As used herein, theterm tangible computer readable medium is expressly defined to includeany type of computer readable storage and to exclude propagatingsignals. Additionally or alternatively, at least one of the terminalmessage generator 504 or the terminal data parser 506 is herebyexpressly defined to include a non-transitory computer readable mediumsuch as a flash memory, a read-only memory (ROM), a random-access memory(RAM), a cache, or any other storage media in which information isstored for any duration (e.g., for extended time periods, permanently,brief instances, for temporarily buffering, and/or for caching of theinformation). As used herein, the term non-transitory computer readablemedium is expressly defined to include any type of computer readablemedium and to exclude propagating signals.

The example wireless terminal 114 shown in FIG. 5 also includes a FLASHmemory 508, a random access memory (RAM) 510, and an expandable memoryinterface 512 communicatively coupled to the processor 502. The FLASHmemory 508 can be used to, for example, store computer readableinstructions and/or data. In some example implementations, the FLASHmemory 508 can be used to store one or more of the data structuresdiscussed above in connection with FIGS. 3 and 4. The RAM 510 can alsobe used to, for example, store data and/or instructions.

The wireless terminal 114 is provided with a security hardware interface514 to receive a SIM card (or a USIM card or a NFC secure element) froma wireless service provider. A SIM card may be used as an authenticationparameter to authenticate the wireless terminal 114 for establishing aconnection with a WLAN-supported network. In some exampleimplementations, a SIM card may also store registration informationrequired to register with external networks. The wireless terminal 114is also provided with an external data I/O interface 516. The externaldata I/O interface 516 may be used by a user to transfer information tothe wireless terminal 114 through a wired medium.

The wireless terminal 114 is provided with a wireless communicationsubsystem 518 to enable wireless communications with APs (e.g., the APs104 a-c of FIG. 1). Although not shown, the wireless terminal 114 mayalso have a long-range communication subsystem to receive messages from,and send messages to, a cellular wireless network. In the illustratedexamples described herein, the wireless communication subsystem 518 canbe configured in accordance with the IEEE® 802.11 standard. In otherexample implementations, the wireless communication subsystem 518 can beimplemented using a BLUETOOTH® radio, a ZIGBEE® device, a wireless USBdevice, an ultra-wideband (UWB) radio, a Near Field Communications (NFC)device, or a Radio Frequency Identifier (RFID) device.

To enable a user to use and interact with or via the wireless terminal114, the wireless terminal 114 is provided with a speaker 520, amicrophone 522, a display 524, and a user input interface 526. Thedisplay 524 can be an LCD display, an e-paper display, etc. The userinput interface 526 could be an alphanumeric keyboard and/ortelephone-type keypad, a multi-direction actuator or roller wheel withdynamic button pressing capability, a touch panel, etc. As discussedabove, the example methods and apparatus described herein can also beadvantageously used in connection with wireless terminals that do nothave user interfaces and, thus, the speaker, 520, the microphone 522,the display 524, the user input interface 526, and/or any combinationthereof may be optionally omitted. In the illustrated example, thewireless terminal 114 is a battery-powered device and is, thus, providedwith a battery 528 and a battery interface 530.

Turning now to FIG. 6, the example AP 104 a of FIGS. 1 and 2 is shown inblock diagram form. The APs 104 b and 104 c of FIG. 1 may be implementedusing a substantially similar or identical configuration. The example AP104 a includes a processor 602 to perform the overall operations of theAP 104 a. In addition, the AP 104 a includes an AP message generator 604to generate TLV or XML-formatted messages or messages of any other typeof format (e.g., the NETCAP RESPONSE 118 of FIG. 1, the EXT-NETCAPREQUEST 218 of FIG. 2, and/or messages to send the SSID 212, theencryption mode status 214, and the GAS support indicator 216 of FIG.2). The AP 104 a also includes an AP data parser 606 to retrieveinformation from received messages sent by the wireless terminal 114and/or the external network A 108 a (FIGS. 1 and 2). The AP messagegenerator 604 is substantially similar to the terminal message generator504 of FIG. 5, and the AP data parser 606 is substantially similar tothe terminal data parser 506 of FIG. 5. Thus, the AP message generator604 and the AP data parser 606 may be implemented in the processor 602and/or a wireless communication subsystem (e.g., a wirelesscommunication subsystem 612) using any combination of hardware,firmware, and/or software including instructions stored on a tangiblecomputer readable medium and/or a non-transitory computer readablemedium.

The example AP 104 a also includes a FLASH memory 608 and a RAM 610,both of which are coupled to the processor 602. The FLASH memory 608 maybe configured to store network capabilities information (e.g., theaccess network capabilities data store 208 of FIG. 2). The RAM 610 maybe used to generate messages for communication to the wireless terminal114 and/or to the external network A 108 a and/or to store receivedmessages communicated by the wireless terminal 114 and/or the externalnetwork A 108 a.

To communicate with wireless terminals such as the wireless terminal114, the AP 104 a is provided with a wireless communication subsystem612, which may be substantially similar or identical to the wirelesscommunication subsystem 518 (FIG. 5) of the wireless terminal 114. Tocommunicate with a WLAN-supported network or external network (e.g., thenetworks 106 a-c, 108 a, and 108 b of FIG. 1), the AP 104 a is providedwith a network uplink communication interface 614.

FIGS. 7A-7C depict a flow diagram representative of an example processthat may be implemented by the wireless terminal 114 of FIGS. 1-5 todiscover network capabilities available via one or more WLANs (e.g., theaccess networks 106 a-c of FIGS. 1 and 2). FIG. 8 depicts a flow diagramrepresentative of another example process that may be implemented by thewireless terminal 114 of FIGS. 1-5 to discover network capabilities viaone or more WLANs. FIG. 9 depicts a flow diagram representative of anexample process that may be implemented by an AP (e.g., one or more ofthe APs 104 a-c of FIGS. 1 and 2) to send network capabilitiesinformation to the wireless terminal 114. The example processes of FIGS.7A-7C, 8 and 9 may be performed using a processor, a controller and/orany other suitable processing device. For example, the example processesof FIGS. 7A-7C, 8, and 9 may be implemented using coded instructions(e.g., computer readable instructions) stored on a tangible computerreadable medium such as a FLASH memory, a read-only memory (ROM), and/ora random-access memory (RAM). As used herein, the term tangible computerreadable medium is expressly defined to include any type of computerreadable storage and to exclude propagating signals. Additionally oralternatively, the example processes of FIGS. 7A-7C, 8, and 9 may beimplemented using coded instructions (e.g., computer readableinstructions) stored on a non-transitory computer readable medium suchas a flash memory, a read-only memory (ROM), a random-access memory(RAM), a cache, or any other storage media in which information isstored for any duration (e.g., for extended time periods, permanently,brief instances, for temporarily buffering, and/or for caching of theinformation). As used herein, the term non-transitory computer readablemedium is expressly defined to include any type of computer readablemedium and to exclude propagating signals.

Alternatively, some or all of the example processes of FIGS. 7A-7C, 8,and 9 may be implemented using any combination(s) of applicationspecific integrated circuit(s) (ASIC(s)), programmable logic device(s)(PLD(s)), field programmable logic device(s) (FPLD(s)), discrete logic,hardware, firmware, etc. Also, some or all of the example processes ofFIGS. 7A-7C, 8, and 9 may be implemented manually or as anycombination(s) of any of the foregoing techniques, for example, anycombination of firmware, software, discrete logic and/or hardware.Further, although the example processes of FIGS. 7A-7C, 8, and 9 aredescribed with reference to the flow diagrams of FIGS. 7A-7C, 8, and 9,other methods of implementing the processes of FIGS. 7A-7C, 8, and 9 maybe employed. For example, the order of execution of the blocks may bechanged, and/or some of the blocks described may be changed, eliminated,sub-divided, or combined. Additionally, any or all of the exampleprocesses of FIGS. 7A-7C, 8, and 9 may be performed sequentially and/orin parallel by, for example, separate processing threads, processors,devices, discrete logic, circuits, etc.

Turning now to FIG. 7A, the illustrated example process may be performedby the wireless terminal 114 during a network discovery process.Initially, the wireless terminal 114 performs a wireless network scan(block 702). For example, the wireless terminal 114 may perform apassive network scan in which it waits for one or more access points(e.g., one or more of the APs 104 a-c of FIG. 1) to broadcast its SSID(e.g., the SSID 212 of FIG. 2) and encryption mode status (e.g., theencryption mode status 214 of FIG. 2), if applicable. Alternatively, thewireless terminal 114 may perform an active scan in which the wirelessterminal 114 transmits a probe request to actively solicit SSIDs (andencryption mode status and GAS support indicators) of any nearby WLANs.

The wireless terminal 114 determines whether any of its stored SSIDsmatch any of the SSIDs received at block 702 (block 704). The storedSSIDs may be pre-stored by a user or a SSP or may have been previouslystored by the wireless terminal 114 when received during a previousnetwork discovery process. In some example implementations, the wirelessnetwork scan operations of blocks 702 and 704 may be omitted and thewireless terminal 114 may proceed to block 706 based on SSIDs that havebeen pre-stored in one of its memories (e.g., the FLASH memory 508 orthe RAM 510 of FIG. 5).

Of the WLANs identified as having SSIDs that match SSIDs stored in thewireless terminal 114, the wireless terminal 114 selects the WLAN(s)that support(s) GAS (block 706). For example, during the wirelessnetwork scan of block 702, the wireless terminal 114 may receive GASsupport indicators (e.g., the GAS support indicator 216 of FIG. 2)indicating which WLANs support GAS.

The wireless terminal 114 uses an ANQP exchange to retrieve networkcapabilities for each WLAN selected at block 706 (block 710). Forexample, for the WLAN associated with the AP 104 a of FIGS. 1 and 2, thewireless terminal 114 sends the NETCAP REQUEST 116 to the AP 104 a andthe AP 104 a responds with the NETCAP RESPONSE 118 as discussed above inconnection with FIGS. 1 and 2. The wireless terminal 114 exchangessimilar messages with any other WLAN selected at block 706.

The wireless terminal 114 determines whether any of the WLANs advertisednetwork capabilities that fully matched all of the network capabilities(e.g., the minimum capabilities 312 and the additional capabilities 314of FIG. 3) specified in a single network capabilities profile (e.g., thenetwork capabilities profiles 210 of FIG. 2 and/or the networkcapabilities profiles of FIG. 3 and/or FIG. 4) (block 712). If thewireless terminal 114 finds full matches (block 712), the wirelessterminal 114 selects the WLAN that advertised network capabilitiesmatching the network capabilities profile with the highest rankingrelative to other matching profiles (block 714). In some exampleimplementations, the wireless terminal 114 may be configured to select aWLAN based on the network capabilities profile that has the relativelyhighest ranking and the closest proximity.

If at block 712, the wireless terminal 114 does not find any fullmatches, the wireless terminal 114 determines whether any of the WLANsadvertised network capabilities that partially match the networkcapabilities specified in a single network profile (e.g., the networkcapabilities profiles 210 of FIG. 2 and/or the network capabilitiesprofiles 302 of FIG. 3 and/or 400 of FIG. 4) (block 716) (FIG. 7B). Ifthe wireless terminal 114 finds partial matches (block 716), thewireless terminal 114 selects the WLAN(s) that advertised networkcapabilities that matched at least all of the minimum capabilities(e.g., the minimum capabilities 312 of FIG. 3 or 404 of FIG. 4) of oneor more network capabilities profile(s) (block 718). If the wirelessterminal 114 selected any WLAN at block 720, the wireless terminal 114then selects the WLAN that advertised network capabilities matching theminimum capabilities 312 (or the minimum capabilities 404) of a networkcapabilities profile with the highest ranking (block 722). In someexample implementations, the wireless terminal 114 may be configured toselect a WLAN based on the network capabilities profile that has thehighest ranking and the closest proximity.

If the wireless terminal 114 did not select any WLAN at block 720 or ifthe wireless terminal 114 did not find any partial matches at block 716,the wireless terminal 114 presents the available WLAN(s) discovered atblock 702 to a user (block 724). If the wireless terminal 114 receives auser selection of a WLAN (block 726) or if the wireless terminal 114selects a WLAN at block 722 or if the wireless terminal 114 selects aWLAN at block 714 (FIG. 7A), the wireless terminal 114 joins with theselected WLAN (block 728). In some example implementations, afterjoining the selected WLAN (block 728), the wireless terminal 114 mayalso be registered with an external network (e.g., the external networkA 108 a of FIGS. 1 and 2). As shown in FIG. 7B, after joining the WLAN(block 728) or if the wireless terminal 114 did not receive a userselection of a WLAN (e.g., within a timeout period) at block 726, theexample process of FIGS. 7A-7C ends.

Returning to FIG. 7A, if at block 704, the wireless terminal 114 doesnot find that any of its stored SSIDs match any of the SSIDs received atblock 702, control advances to block 730 shown in FIG. 7C. The wirelessterminal 114 presents the available WLAN(s) discovered at block 702 viaa display of the wireless terminal 114 (block 730). If the wirelessterminal 114 receives a user selection of one or more WLANs (block 732)that the user would like to attempt to join, the wireless terminal 114selects the WLAN(s) that support(s) GAS (block 734). For example, thewireless terminal 114 may determine which WLANs support GAS based onwhich WLANs transmitted the GAS support indicator 216 (FIG. 2) (e.g.,based on GAS support indicators received at block 702).

The wireless terminal 114 uses an ANQP exchange to retrieve networkcapabilities for each WLAN selected at block 734 (block 736). Forexample, for the WLAN associated with the AP 104 a of FIGS. 1 and 2, thewireless terminal 114 sends the NETCAP REQUEST 116 to the AP 104 a andthe AP 104 a responds with the NETCAP RESPONSE 118 as discussed above inconnection with FIGS. 1 and 2. The wireless terminal 114 exchangessimilar messages with any other WLAN selected at block 736.

The wireless terminal 114 presents the network capabilities retrieved atblock 736 for each WLAN via a display of the wireless terminal 114(block 738). If the wireless terminal 114 receives a user selection of aWLAN (block 740), the wireless terminal 114 joins the selected WLAN(block 742). In some example implementations, after joining the selectedWLAN (block 742), the wireless terminal 114 may also be registered withan external network (e.g., the external network A 108 a of FIGS. 1 and2). As shown in FIG. 7C, after association with the selected WLAN (block742) or if the wireless terminal 114 did not receive one or more userselection(s) of WLAN(s) at block 732 (e.g., within a particular timeoutperiod) or did not receive a user selection at block 740 (e.g., within aparticular timeout period), the example process of FIGS. 7A-7C ends.

Turning now to FIG. 8, the flow diagram depicts another example processthat may be performed by the wireless terminal 114 of FIGS. 1-5 todiscover network capabilities available via one or more WLANs.Initially, the wireless terminal 114 performs a wireless network scan(block 802). For example, the wireless terminal 114 may perform apassive network scan in which it waits for one or more access points(e.g., one or more of the APs 104 a-c of FIG. 1) to broadcast its SSID(e.g., the SSID 212 of FIG. 2) and encryption mode status (e.g., theencryption mode status 214 of FIG. 2), if applicable. Alternatively, thewireless terminal 114 may perform an active scan in which the wirelessterminal 114 transmits a probe request to actively solicit SSIDs (andencryption mode status and GAS support indicators) of any nearby WLANs.

If the wireless terminal 114 determines that one or more WLANs werediscovered (block 804), the wireless terminal 114 retrieves networkservices for each discovered WLAN (block 806). For example, the wirelessterminal 114 may use an ANQP exchange to retrieve the network services(e.g., the discovered network capabilities 304 of FIG. 3) for eachdiscovered WLAN that supports GAS. The wireless terminal 114 filters thereceived network services (block 808). For example, the wirelessterminal 114 may filter out any WLANs that do not meet the minimumnetwork capabilities (e.g., the minimum capabilities 312 of FIG. 3 or404 of FIG. 4) specified in the wireless terminal 114 and may furtherfilter the remaining WLANs based on rankings (e.g., the rankings 310 ofFIG. 3) associated with those minimum network capabilities. In thismanner, the wireless terminal 114 can determine which of the WLANs aresuitable candidates to join.

The wireless terminal 114 presents the network services via a display(block 810) for each WLAN that it identified as being a suitablecandidate for joining. If the wireless terminal 114 determines that oneor more of the presented services were selected (e.g., by a user of thewireless terminal 114) (block 812), the wireless terminal 114 joins theWLAN that provides the one or more selected service(s) (block 814).

At some time after joining the WLAN at block 814, the wireless terminal114 may determine whether it should discover other available networks(block 816). For example, the network capabilities needs of the wirelessterminal 114 may change or the wireless terminal 114 may becomedisconnected from the WLAN that it joined at block 814. Additionally,the wireless terminal 114 may determine whether to discover otheravailable networks at block 816 in instances when the wireless terminal114 does not discover a network at block 804 or one or more services arenot selected at block 812. If the wireless terminal 114 determines thatit should discover another network (block 816), control passes back toblock 804. Otherwise, the example process of FIG. 8 ends.

Turning now to FIG. 9, the illustrated example process may be performedby the AP 104 a during a network discovery process. The example processmay be similarly performed by any other AP (e.g., the APs 104 b and 104c of FIG. 1 or any other AP) during a network discovery process.Initially, the AP 104 a transmits its SSID (e.g., the SSID 212 of FIG.2) and any encryption mode status (e.g., the encryption mode status 214of FIG. 2) and GAS support indicator (e.g., the GAS support indicator216 of FIG. 2) (block 902). The AP 104 a may send this information basedon a periodic SSID broadcast for passive network discovery scans orbased on an active network discovery scan initiated by a wirelessterminal (e.g., the wireless terminal 114 of FIGS. 1-5).

If the AP 104 a receives a network capabilities request (e.g., theNETCAP REQUEST 116 of FIGS. 1 and 2) (block 906), the AP 104 adetermines whether to forward a network capabilities request (e.g., theEXT-NETCAP REQUEST 218 of FIG. 2) to an external network (e.g., theexternal network A 108 a of FIGS. 1 and 2) (block 906). For example, ifthe AP 104 a is in communication with an external network, it may send anetwork capabilities request to the external network. Otherwise, if itis not in communication with an external network, it does not send anetwork capabilities request to an external network.

If the AP 104 a determines that it should send a network capabilitiesrequest to an external network (e.g., the external network A 108 a)(block 906), the AP 104 a sends the EXT-NETCAP REQUEST 218 to theexternal network A 108 a (block 908) and receives the EXT-NETCAPRESPONSE 220 from the external network A 108 a (block 910) includingnetwork capabilities of the external network A 108 a as described abovein connection with FIG. 2. After receiving the network capabilities ofthe external network A 108 a at block 910 or if the AP 104 a determinesat block 906 that it should not send a network capabilities request toan external network, the AP 104 a collects network capabilities of theaccess network A 106 a (FIGS. 1 and 2) (block 912). The AP 104 agenerates the NETCAP RESPONSE 118 (FIGS. 1 and 2) (block 914) to includethe network capabilities of the access network A 106 a and/or theexternal network A 108 a and sends the NETCAP RESPONSE 118 to thewireless terminal 114 (block 916).

After sending the NETCAP RESPONSE 118 at block 916 or if the AP 104 ahas not received the NETCAP REQUEST 116 at block 904, the AP 104 adetermines whether it should send another SSID (block 918), for example,based on a periodic SSID broadcast or a request from a wirelessterminal. If the AP 104 a determines that it should send another SSID,control returns to block 902. Otherwise, the AP 104 a determines whetherit should end its processes (block 920), for example, based on a poweroff event or a low-power mode event. If the AP 104 a should not end itsprocesses, control returns to block 904. Otherwise, the example processof FIG. 9 is ended.

Although certain methods, apparatus, and articles of manufacture havebeen described herein, the scope of coverage of this patent is notlimited thereto. To the contrary, this patent covers all methods,apparatus, and articles of manufacture fairly falling within the scopeof the appended claims either literally or under the doctrine ofequivalents.

What is claimed is:
 1. A method for network selection, the methodcomprising: discovering network capabilities by: performing an AccessNetwork Query Protocol (ANQP) query at a wireless terminal, andreceiving a subsequent ANQP response from an access point of a wirelesslocal area network, the network capabilities indicated in the subsequentANQP response; comparing the network capabilities with configuredcapabilities; finding a match between at least a portion of the networkcapabilities and at least a portion of the configured capabilities; andjoining the wireless terminal with the access point based on the atleast the portion of the network capabilities matching the at least theportion of the configured capabilities.
 2. A method as defined in claim1, wherein one of the configured capabilities in the at least theportion of the configured capabilities is from a list of the configuredcapabilities arranged in ranked order.
 3. A method as defined in claim2, wherein the ranking assigned to the configured capabilities pertainsto the wireless terminal.
 4. A method as defined in claim 1, wherein thequery is performed at the wireless terminal and the subsequent responseis received from the access point based on determining that the accesspoint supports ANQP.
 5. A method as defined in claim 1, wherein theconfigured capabilities are capabilities of the wireless terminal.
 6. Anapparatus for network selection, the apparatus comprising: a processorto: discover network capabilities by: performing an Access Network QueryProtocol (ANQP) query at a wireless terminal, and receiving a subsequentANQP response from an access point of a wireless local area network, thenetwork capabilities indicated in the subsequent ANQP response; comparethe network capabilities with configured capabilities; find a matchbetween at least a portion of the network capabilities and at least aportion of the configured capabilities; and join the wireless terminalwith the access point based on the at least the portion of the networkcapabilities matching the at least the portion of the configuredcapabilities.
 7. An apparatus as defined in claim 6, wherein one of theconfigured capabilities in the at least the portion of the configuredcapabilities is from a list of the configured capabilities arranged inranked order.
 8. An apparatus as defined in claim 7, wherein the rankingassigned to the configured capabilities pertains to the wirelessterminal.
 9. An apparatus as defined in claim 6, wherein the processoris to perform the query at the wireless terminal and to receive thesubsequent response from the access point when the access point supportsANQP.
 10. An apparatus as defined in claim 6, wherein the configuredcapabilities are capabilities of the wireless terminal.
 11. A tangiblemachine readable storage medium comprising instructions that, whenexecuted, cause a machine to: discover network capabilities by:performing an Access Network Query Protocol (ANQP) query at a wirelessterminal, and receiving a subsequent ANQP response from an access pointof a wireless local area network, the network capabilities indicated inthe subsequent ANQP response; compare the network capabilities withconfigured capabilities; find a match between at least a portion of thenetwork capabilities and at least a portion of the configuredcapabilities; and join the wireless terminal with the access point basedon the at least the portion of the network capabilities matching the atleast the portion of the configured capabilities.
 12. A tangible machinereadable storage medium as defined in claim 11, wherein one of theconfigured capabilities in the at least the portion of the configuredcapabilities is from a list of the configured capabilities arranged inranked order.
 13. A tangible machine readable storage medium as definedin claim 12, wherein the ranking assigned to the configured capabilitiespertains to the wireless terminal.
 14. A tangible machine readablestorage medium as defined in claim 11, wherein the instructions causethe machine to perform the query at the wireless terminal and to receivethe subsequent response from the access point when the access pointsupports ANQP.
 15. A tangible machine readable storage medium as definedin claim 11, wherein the configured capabilities are capabilities of thewireless terminal.